<?php

	require_once CORMO_DIR_CORE.'WebServices.class.php';
	@require_once CORMO_DIR_CONTROLLER.'nusoap/nusoap.php';
	
	/**
	 * Generador de Class Proxy para Web Services Externos, los cuales podr�n ser utilizados
	 * en la L�gica de Nogocio. El objetivo es ofrecer un Object con los metodos ofrecidos en
	 * el Web Service, de esta manera su uso es transparente y no sabremos si estamos trabajando
	 * sobre una DB o un Web Service, permitiendo de esta manera una L�gica de Negocio mas simple
	 * y compleja en lo que respecta a su potencial.
	 * 
     * @category cormo
     * @package Generator
     * @author Germ�n Dario Peraferrer <gperaferrer@gmail.com>
     * @copyright Copyright (c) 2007 Germ�n Dario Peraferrer - Beetec
     * @version 1.0 Beta
     * @license http://www.opensource.org/licenses/bsd-license.php New BSD License
     * @link http://code.google.com/p/cormoframework/
     * @link http://www.beetec.com.ar
	 */
	
	class ServiceProxyObject extends WebServices {
		
		function __construct($nameObjectORM) {
			return parent::__construct($nameObjectORM);
		}
		
		function __toString() {
			$retun = "";
            $require = "";
			
			/**
			 * Definimos la Class
			 */
			$require .= '  /**'."\n";
			$require .= '   * Class Proxy para Web Services Externos, generado autom�ticamente por cormo.'."\n";
			$require .= '   * '."\n";
			$require .= '   * @category cormo'."\n";
			$require .= '   * @package ServiceProxy'."\n";
			$require .= '   * @author Germ�n Dario Peraferrer <gperaferrer@gmail.com>'."\n";
			$require .= '   * @copyright Copyright (c) 2007 Germ�n Dario Peraferrer - Beetec'."\n";
			$require .= '   * @version 1.0 Beta'."\n";
			$require .= '   * @license http://www.opensource.org/licenses/bsd-license.php New BSD License'."\n";
			$require .= '   * @link http://code.google.com/p/cormoframework/'."\n";
			$require .= '   * @link http://www.beetec.com.ar'."\n";
			$require .= '   */'."\n";
			$require .= "\n";

			/**
			 * Definimos lo Require de la Class
			 */
			
			$require .=	'  require_once CORMO_DIR_CONTROLLER."nusoap/nusoap.php";'."\n\n";

			/**
			 * Nos conectamos al Web Service para obtener sus ComplexType y Funciones para crear el Class Proxy
			 */
			
			$soapClient = new nusoap_client($this->getUrl(), $this->getIsWSDL(), $this->getProxyHost(), $this->getProxyPort(), $this->getProxyUserName(), $this->getProxyPassword(), $this->getTimeOut(), $this->getResponseTimeOut());

			// Controla si se ha logrado o no la conexi�n con el Web Service
			if ($sError = $soapClient->getError()) { 
				$retun .= 'No se ha logrado establecer la conexi�n con el Web Service, por favor verifique el Url especificado: '.$this->getUrl(); 
			} else {
				$proxy = $soapClient->getProxy();
				if (strlen(@get_class($proxy)) > 0) {
					$retun .= $proxy->_getProxyClassCode($this->getConfigObjectName());
				} else {
					$require = '  Error: No se ha logrado establecer la conexi�n con el Web Service, por favor verifique el Url especificado: '.$this->getUrl()."\n"; 
				}
			}

			return $require.$retun;
		}

	}
	
?>